package com.online_video.dao;

import com.online_video.entity.Collect;
import com.online_video.entity.CollectBook;
import com.online_video.entity.User;
import com.online_video.entity.Video;

import java.util.List;

public interface VideoDao {

    int insert(Video video);

    int update(Video video);

    int delete(Integer vid);

    /**
     * 通过视频名称查找
     * @param viName 视频名称
     * @return
     */
    List<Video> queryByViName(String viName);

    /**
     * 通过视频分类查询
     * @param category 视频的分类
     * @return
     */
    List<Video> queryByCategory(String category);

    /**
     * 通过视频的id查询只有一个
     * @param vid
     * @return
     */
    Video queryByVid(Integer vid);

    /**
     * 通过上传人员的名称查询
     * @param id
     * @return
     */
    List<Video> queryByU_id(Integer id);

    /**
     * 查询收藏夹
     * @param u_id 用户ID
     * @return
     */
    List<CollectBook> queryCollectBookByid(Integer u_id);

    /**
     *  添加收藏夹
     * @param collectBook
     * @return
     */
    int insertCollectBook(CollectBook collectBook);

    CollectBook isExitCollectBookById(Integer u_id,String c_book_name);

    List<CollectBook> queryCollBook(Integer u_id,Integer c_book_id);

    //添加视频到收藏夹
    int insertCollect(Collect collect);

    //删除收藏视频
    int delCollectVideo(Integer collectid);

    //判断当前用户是否已经收藏该视频
    List<Collect> isExitCollectVideo(Integer vid,Integer u_id);

    //视频页取消收藏
    int cancelCollectVideo(Integer vid,Integer u_id);

    //点赞+1
    int collectCount(Integer vid);

    /**
     * 查询总个数
     * @param parm  搜索parm所有数量
     * @return
     */
    Integer queryForPageTotalCount(String parm,String category);


    List<Video> queryForPageItems(int begin,int pageSize,String parm,String category);

    User queryUserByVid(Integer vid);
}
